package com.example.wxordersystem.service;

import com.example.wxordersystem.dto.OrderDTO;

import java.util.List;

/**
 * @author 常红伟
 */
public interface OrderService {

    /**
     * 创建订单
     * @param orderDTO 订单对象
     * @return 返回创建的订单对象
     */
    OrderDTO create(OrderDTO orderDTO);

    /**
     * 查询单个订单
     * @param orderId 根据订单ID查询某个订单
     * @return 返回查询到的订单对象
     */
    OrderDTO findOne(String orderId);

    /**
     * 查询某个用户的所有订单
     * @param buyerOpenid 微信用户ID
     * @param pageNumber  查询从第几页开始
     * @param pageSize     查询到第几页
     * @return 返回查询到的订单列表
     */
    List<OrderDTO> findList(String buyerOpenid, int pageNumber, int pageSize);

    /**
     * 取消订单
     * @param orderDTO 取消的订单对象
     * @return 返回被取消的订单对象
     */
    OrderDTO cancel(OrderDTO orderDTO);

    /**
     * 完结订单
     * @param orderDTO 完结的订单对象
     * @return 返回被完结的订单对象
     */
    OrderDTO finish(OrderDTO orderDTO);


    /**
     *支付订单
     * @param orderDTO 需要被支付的订单对象
     * @return 返回被支付的订单对象
     */
    OrderDTO paid(OrderDTO orderDTO);

    /**
     * 卖家查询所有订单
     * @param pageNumber
     * @param pageSize
     * @return
     */
    List<OrderDTO> findList( int pageNumber, int pageSize);
}
